package com.ruyuan.eshop.construction.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruyuan.eshop.construction.domain.dto.CategoryInfoDTO;
import com.ruyuan.eshop.construction.domain.dto.CategoryInfoTreeDTO;
import com.ruyuan.eshop.construction.domain.dto.CategoryResultDTO;
import com.ruyuan.eshop.construction.domain.entity.CategoryInfoDO;
import com.ruyuan.eshop.construction.domain.request.QueryCategoryListRequest;
import com.ruyuan.eshop.construction.domain.request.QueryCategoryRequest;
import com.ruyuan.eshop.construction.domain.request.CategoryRequest;

import java.util.List;

/**
 * 商品品类信息
 *
 * @author zhonghuashishan
 */
public interface CategoryInfoService {

    /**
     * 查询品类树
     *
     * @param request
     * @return java.util.List<com.ruyuan.eshop.construction.domain.dto.CategoryInfoTreeDTO>
     * @author zhonghuashishan
     */
    List<CategoryInfoTreeDTO> selectTree(QueryCategoryRequest request);

    /**
     * 查询当前品类的子节点
     *
     * @param request
     * @return java.util.List<com.ruyuan.eshop.construction.domain.dto.CategoryInfoDTO>
     * @author zhonghuashishan
     */
    List<CategoryInfoDTO> selectChild(QueryCategoryRequest request);

    /**
     * 新增/编辑品类接口
     *
     * @param request
     * @return com.ruyuan.eshop.construction.domain.dto.CategoryResultDTO
     * @author zhonghuashishan
     */
    CategoryResultDTO saveCategory(CategoryRequest request);

    /**
     * 查询品类信息
     *
     * @param request
     * @return java.util.List<com.ruyuan.eshop.construction.domain.dto.CategoryInfoDTO>
     * @author zhonghuashishan
     */
    List<CategoryInfoDTO> selectListByLike(QueryCategoryListRequest request);
}
